// 初始化模型和图表
let model;
let chart;

// 模拟真实商业数据
const costPrices = [50, 100, 150, 200];  // 成本价（元）
const salePrices = [120, 220, 320, 420]; // 建议售价

async function initModel() {
    showLoading(true);
    
    // 创建模型
    model = tf.sequential({
        layers: [
            tf.layers.dense({ units: 8, activation: 'relu', inputShape: [1] }),
            tf.layers.dense({ units: 1 })
        ]
    });
    
    // 编译模型（优化器升级）
    model.compile({
        loss: 'meanSquaredError',
        optimizer: tf.train.adam(0.1)
    });

    // 转换训练数据
    const xs = tf.tensor2d(costPrices, [costPrices.length, 1]);
    const ys = tf.tensor2d(salePrices, [salePrices.length, 1]);

    // 训练模型（增加训练日志）
    await model.fit(xs, ys, {
        epochs: 1000,
        batchSize: 4,
        callbacks: {
            onEpochEnd: (epoch, logs) => {
                if (epoch % 100 === 0) {
                    console.log(`第${epoch}次训练，误差: ${logs.loss.toFixed(4)}`);
                }
            }
        }
    });

    // 初始化图表
    initChart();
    showLoading(false);
}

function initChart() {
    const ctx = document.getElementById('priceChart').getContext('2d');
    chart = new Chart(ctx, {
        type: 'line',
        data: {
            labels: costPrices,
            datasets: [{
                label: 'AI定价曲线',
                data: salePrices,
                borderColor: '#4CAF50',
                tension: 0.4
            }]
        },
        options: {
            responsive: true,
            plugins: {
                legend: { position: 'top' }
            }
        }
    });
}

async function predictPrice() {
    const input = parseFloat(document.getElementById('costPrice').value);
    
    if (!model) {
        alert('请等待模型训练完成！');
        return;
    }

    if (isNaN(input)) {
        alert('请输入有效数字');
        return;
    }

    // 执行预测
    const output = model.predict(tf.tensor2d([input], [1, 1]));
    const predictedPrice = output.dataSync()[0];
    
    // 更新显示
    document.getElementById('result').innerHTML = `
        <h3>💰 定价建议</h3>
        <p>成本价：${input} 元</p>
        <p class="highlight">建议售价：${predictedPrice.toFixed(2)} 元</p>
        <small>利润率：${((predictedPrice/input - 1)*100).toFixed(1)}%</small>
    `;

    // 更新图表
    chart.data.labels.push(input);
    chart.data.datasets[0].data.push(predictedPrice);
    chart.update();
}

function showLoading(show) {
    document.getElementById('loading').style.display = show ? 'block' : 'none';
}

// 页面加载时自动初始化
window.onload = initModel;